This invention relates generally to graphical user interfaces for computer systems and, more particularly, to methods and apparatus for manipulating the size and shape of window panes within a window in a graphical user interface.
Many modern computer systems employ graphical user interfaces that provide a separate "window" for each active task (as used herein, the term "task" includes but is not limited to both application programs and documents). Familiar examples include the Macintosh user interface from Apple Computer, Inc., and the Windows 95 user interface from Microsoft Corp. Such user interfaces facilitate computing because they provide a convenient way for a user to manage multiple tasks that are concurrently executing on the same computer.
A window can be further divided into smaller work areas or views within the window called "panes." FIG. 1 shows an example of a window that can be used with applications compatible with a windowing environment. FIG. 1 shows a window with two panes 110 and 120 separated by a horizontal border or "sash" 130. Panes allow a window to have multiple functions or multiple views visible on the screen at the same time. FIG. 2 illustrates an example of a window with two panes that can be used with an electronic mail application such as MailView.TM. by Sun Microsystems, Inc. As shown in FIG. 2, for example, the upper pane may contain a list of incoming e-mail while the lower pane may be used to view the text of one particular e-mail simultaneously. MailView.TM. is an application program in the HotJava Views.TM. suite of application programs that provides users with e-mail, calendaring, name directory access, and Internet browsing capabilities all written in Java.TM. programming language. Sun, Sun Microsystems, the Sun Logo, MailView, Hotjava Views, and Java are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.
Users can adjust the amount of space of each window that is devoted to each pane. Conventional methods allow users to position the mouse pointer over the sash between two panes, press and hold the mouse button, and drag the sash to a different position. The new position of the sash simultaneously enlarges one pane and reduces an adjacent pane.
There exist many drawbacks with current methods for resizing panes of a window. Existing methods, for example, do not remember the previous position of the sash once it has been moved to a new position. The user, therefore, must attempt to reestablish an earlier setting by estimating where the sash was positioned earlier and manually dragging the sash to that position. Dragging is a difficult skill for many people and locating the exact previous setting is difficult for most people. There is therefore a need for a system that allows a user to easily manipulate the size of panes in a window.